home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Acorn RISC PD-CD 1
/
Acorn RISC PD-CD 1.iso
/
languages
/
forth
/
_forth
/
notes
< prev
next >
Wrap
Text File
|
1991-04-15
|
3KB
|
74 lines
Notes: Forth97
I am attempting to introduce FORTH multitasking into both the windowing and non-windowing versions of the kernel.
At present check the PROCmultitask procedure for details of what is happeninh.
Note: Processes are stored in a word that gets rotated
ABCDEFGH there are eight tasks running in this case
H will run first the back to A.
when a task exits it deletes itself from the
task list.
When a new task starts it puts itself
on the first available nibble.
Process table Format
Word Number | Description
1 | Pointer to header that holds task name
2 | return stack pointer for this task
3 | data stack pointer for this task
4 | FORTH instruction pointer
Note: task 0 is considered to be always running ( base )
any other task runs as a child of the Fork keyword and
is time sliced with all other processes.
All processes get equal time slices.
Forth 106 onwards : 24th March 1991
More processes are now runnable.. 8 in fact
Working on the load routine -
it should load a file immediately - not wait until end of the current line
has been parsed.
It will enable the forth interpreter to bootstrap the line editor, this is
important because it will enable FULL multitasking.. including background
tasks. incidently it will enable a user to customise the editor to
whatever format they like.
Inline: has had the load section ripped out.
Forth107: 31st March 1991
8 processes runnable.
Forthc now loads the inline parser from disk. ( written in forth )
It now multitasks properly and has the abort etc vectors trapped so that
accessing dodgy locations will not crash the interpreter. Note: that if
someone actualy patched the code with a direct poke unpredictable things
could happen. ( try the following: -1 editv ! as an example ).
I am still testing the new fork command routine. it no longer scans the
inline buffer for the task name. it now gets the command address from the
stack.
Forth110 - 15th April 1991
No major changes. Just added a file depth of 7 to the load function.
It is now possible to have multiple files that chain together.
In the non wimp version there was/is a strange bug.
- a file ftest would crash the wimp version of forth.
Strange thing is the individual parts of the original did not
cause problems. Even when nested as deep as the ftest ( 3 levels )
I changed the ftest file and now it runs !!!!
Other point is that it uses EXACTLY the same code as the non wimp
version and that runs OK. got me foxed !!
The problem doesnt exist in the NON wimp version. - I think this is
acceptable because the wimp is only for rapid development - not for
final production.